package com.ruoyi.project.erp.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 项目对象 project
 * 
 * @author ruoyi
 * @date 2025-06-17
 */
@Data
public class Project extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectId;

    /** 客户 */
    @Excel(name = "客户")
    private String customer;

    /** 客户 */
    @Excel(name = "销售人员ID")
    private String saleId;

    /** 客户 */
    @Excel(name = "销售系数")
    private BigDecimal salesRatio;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目组 */
    @Excel(name = "项目组")
    private String projectGroup;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private String projectStatus;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String projectType;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;
    @Excel(name = "项目描述")
    private String projectInfo;
    /** 部门 */
    @Excel(name = "部门")
    private Long deptId;

    /** 项目开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date projectStartTime;

    /** 项目结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date projectEndTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }

    public void setCustomer(String customer) 
    {
        this.customer = customer;
    }

    public String getCustomer() 
    {
        return customer;
    }

    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }

    public void setProjectGroup(String projectGroup) 
    {
        this.projectGroup = projectGroup;
    }

    public String getProjectGroup() 
    {
        return projectGroup;
    }

    public void setProjectStatus(String projectStatus) 
    {
        this.projectStatus = projectStatus;
    }

    public String getProjectStatus() 
    {
        return projectStatus;
    }

    public void setProjectType(String projectType) 
    {
        this.projectType = projectType;
    }

    public String getProjectType() 
    {
        return projectType;
    }

    public void setProjectLeader(String projectLeader) 
    {
        this.projectLeader = projectLeader;
    }

    public String getProjectLeader() 
    {
        return projectLeader;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setProjectStartTime(Date projectStartTime) 
    {
        this.projectStartTime = projectStartTime;
    }

    public Date getProjectStartTime() 
    {
        return projectStartTime;
    }

    public void setProjectEndTime(Date projectEndTime) 
    {
        this.projectEndTime = projectEndTime;
    }

    public Date getProjectEndTime() 
    {
        return projectEndTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("customer", getCustomer())
            .append("projectName", getProjectName())
            .append("projectGroup", getProjectGroup())
            .append("projectStatus", getProjectStatus())
            .append("projectType", getProjectType())
            .append("projectLeader", getProjectLeader())
            .append("deptId", getDeptId())
            .append("projectStartTime", getProjectStartTime())
            .append("projectEndTime", getProjectEndTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
